package us.luosl.lslt.asyn.pipeline;

import java.util.List;

/**
 * 数据管道
 * @param <T> 数据类型
 */
public interface Pipeline<T> {

    /**
     * 往数据管道压入数据
     * @param data 待压入数据
     * @return 是否压入成功
     */
    boolean push(T data);

    /**
     * 从管道拉取指定大小的数据
     * @param size 拉取的数据量
     * @return 拉取的数据
     */
    List<T> pull(int size);

}
